home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / ddj1190.arc / E_FLOYD.ARC / WORDS.DOC < prev    next >
Text File  |  1990-10-27  |  7KB  |  185 lines

  1. WORDS Version 1.0 - A fast word extractor program.  3/30/90
  2.  
  3. Purpose of WORDS
  4. ----------------
  5. WORDS extracts a list of unique "words" from an input file, or
  6. several input files, and writes them to an output file, one per
  7. line. The program recognizes a number of options for:
  8.  
  9.   o Set operations on multiple files
  10.  
  11.   o Case sensitivity
  12.  
  13.   o High-order bit stripping
  14.  
  15.   o Alphabetic output sort
  16.  
  17.   o Defining the characters comprising a "word"
  18.  
  19. How to run WORDS
  20. ----------------
  21. From the DOS command line enter:
  22.  
  23.   WORDS filenames [-U/-I/-C] [-A] [-L] [-H] [-W[+/-]abc..]
  24.         [-Oname] [@name]
  25.  
  26. Spaces delimit command line parameters.  You may intermingle
  27. input text filenames and options (mark each option with a leading
  28. hyphen).  Some options (-W,-O) allow a character string or
  29. filename to follow the option letter.  This must follow with no
  30. intervening spaces or the program will mistake it for an input
  31. file name.  Some options (-A,-L,-H) allow a "+" or "-" to
  32. indicate "on" or "off".  This also must follow with no
  33. intervening space, and "+" is assumed if it is omitted.  You may
  34. place options and filenames in an ASCII "include" file and
  35. specify its name with a leading "@" on the command line.  An
  36. include file may contain references to other include files.  You
  37. also may specify default options, filenames and include files in
  38. the DOS environment using "SET WORDS=...".  For example:
  39.  
  40.   SET WORDS=-U -A+ -L+ -Owords.out -W-ABCDEFGHIJKLMNOPQRSTUVWXYZ
  41.   SET WORDS=@defaults.wrd -O
  42.  
  43. WORDS processes options left-to-right, first from the DOS
  44. environment, then from the command line.  Where options conflict,
  45. the last option processed prevails.  Thus, you may override "SET"
  46. environment options on the command line.
  47.  
  48. What the options mean
  49. ---------------------
  50. -U, -I or -C specifies the set operation to be performed on the
  51. extracted words from the input files.  Only one of these options
  52. is active for any given WORDS run.  The operations are:
  53.  
  54. -U       Union: Keep all unique words from any input file.
  55.          This is the default.
  56.  
  57. -I       Intersection: Keep unique words common to all input
  58.          files.
  59.  
  60. -C       Complement: Keep unique words from the second and
  61.          subsequent files, only if they are NOT contained in
  62.          the first file.
  63.  
  64. Other options:
  65.  
  66. -A[+/-]  Sort output words alphabetically (default off).  If
  67.          -A is off, output words will be in order of first
  68.          encounter in the input files.
  69.  
  70. -H[+/-]  Clear the high-order bit on each input character
  71.          (default off).  Use this option to process files
  72.          created by word processing programs, like WordStar,
  73.          that mark some letters by setting the high-order
  74.          bit, often at the beginning or end of a word.
  75.  
  76. -L[+/-]  Lower case is significant (default off).  If -L is
  77.          off, the program will shift all output words to
  78.          upper case.
  79.  
  80. -W-abc.. Replace the "word character set" with the indicated
  81.          characters.  The program checks each character in
  82.          each input file for membership in the word character
  83.          set and defines a "word" as an uninterrupted
  84.          sequence of at least one but no more than 35
  85.          characters which are members of that set.  The
  86.          default is the set of upper and lower case
  87.          alphabetic characters.
  88.  
  89. -W+abc.. Add additional characters to the word character set.
  90.  
  91. -O[name] Name the output file.  If the name is omitted ("-O "),
  92.          output goes to "StdOut" and is available for DOS a
  93.          pipe (|) or redirection (>).  StdOut is the
  94.          default.
  95.  
  96. -O-      Suppress output.  -Onul also suppresses output.  The
  97.          program will still display word counts on the
  98.          screen.
  99.  
  100. Three examples
  101. --------------
  102. 1. Generate an alphabetized list of all words appearing in the
  103. document named WORDS.DOC and write the list to file WORDS.LST.
  104. The following are equivalent:
  105.  
  106.   WORDS words.doc -U -A -Owords.lst
  107.  
  108.   WORDS words.doc -A >words.lst       (defaults: -U, StdOut)
  109.  
  110.   WORDS -U words.doc -A+ >words.lst
  111.  
  112.   SET WORDS=-A+ -Owords.lst           (set defaults)
  113.   WORDS words.doc
  114.  
  115. 2. Given a previously extracted list of words in file SPELL.CHK,
  116. generate a list of words from file LETTER.DOC which are NOT in
  117. SPELL.CHK, and write the list to LETTER.BWD.
  118.  
  119.   WORDS -C spell.chk letter.doc -Oletter.bwd
  120.  
  121. (A poor persons spelling checker?)
  122.  
  123. 3. Given file PASCAL.PRC containing a list of Pascal library
  124. procedure names, determine which procedures are referenced by
  125. Pascal source program BIGPROG.PAS and write the referenced
  126. procedure names to the screen with a pause at each screen full.
  127.  
  128.   WORDS pascal.prc bigprog.pas -I -W+_0123456789 | more
  129.  
  130. (Pascal identifiers may contain numerics or the "_" (underline)
  131. character, so we add these to the word set via "-W+_01..".)
  132.  
  133. Limitations
  134. -----------
  135. A "word" may be no longer than 35 characters.  No more than
  136. 65,535 unique words may accumulate.  All data must fit in main
  137. memory (this usually determines the limit).  Each unique word
  138. occupies its length in memory, plus an overhead of about 7 bytes,
  139. plus another 10 bytes at output time if output is alphabetized
  140. (-A+).  Thus, with a typical available memory of 500k and 5
  141. characters (average) per word, you will run out of memory after
  142. about 40,000 unique words, unsorted.
  143.  
  144. FYI, network users, WORDS opens its input files in "Read, Deny
  145. None" mode, @include files "Read, Compatibility", and the output
  146. file in "Write, Compatibility".  Only one file at a time is open,
  147. except during processing of nested @include files.
  148.  
  149. Legal Stuff
  150. -----------
  151. WORDS.EXE and WORDS.DOC are:
  152.  
  153. Copyright 1990 by Edwin T. Floyd,
  154. All rights reserved.
  155.  
  156. WORDS is copyrighted "free" software.  The author hereby
  157. expressly permits and encourages individuals to use WORDS at home
  158. and at work and to distribute it without charge.  The author
  159. prohibits distribution of WORDS for profit, or as a part of a
  160. product sold for profit, except where explicit written permission
  161. has been obtained from the author for such distribution.  Also,
  162. users groups and shareware libraries charging a disk duplication
  163. fee not exceeding $10.00 may distribute WORDS.
  164.  
  165. The author makes no warranties of any kind, either expressed or
  166. implied, as to mercantability or fitness for any particular
  167. purpose.  WORDS.EXE and WORDS.DOC are available as is and in no
  168. event will the author be held liable for damages, including any
  169. lost profits or incidental or consequential damages, even if the
  170. author has been advised of the possibility of such damages.
  171.  
  172. Authorship
  173. ----------
  174. WORDS was written in Turbo Pascal v5.5 by:
  175.  
  176.   Edwin T. Floyd         [76067,747]  (CompuServe)
  177.   #9 Adams Park Court    404/576-3305 (work)
  178.   Columbus, GA 31909     404/322-0076 (home)
  179.  
  180. The latest version of WORDS is available on CompuServe in the
  181. IBMPRO forum, and on a number of bulletin boards around the
  182. country.  If you are a Pascal programmer interested in the
  183. technology used to write this program, please drop me a line.
  184. - Edwin -                                                 3-30-90
  185.